/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.edu.uniminuto.Videominuto.bean;

import co.edu.uniminuto.Videominuto.entities.Coleccion;
import co.edu.uniminuto.Videominuto.entities.Serie;
import co.edu.uniminuto.Videominuto.entities.TipoVideo;
import co.edu.uniminuto.Videominuto.entities.Video;
import co.edu.uniminuto.Videominuto.ln.CatalogoVideo;
import java.util.Iterator;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

/**
 *
 * @author JULIAN
 */
@ManagedBean
@SessionScoped
public class SerieColeccionBean {

    @EJB
    private CatalogoVideo catalogoVideo;
    private TipoVideo peliculas;
    private List<Video> listaVideos;
    private List<Serie> listaSeries;
    private List<Coleccion> listaColecciones;
    private Serie serie;
    private Coleccion coleccion;
    private Video video;
    private int idserie;
    private int idvideo;
    private int idColeccion;
    private int seleccion;

    public SerieColeccionBean() {
    }

    public List<Serie> getListaSeries() {
        listaSeries = catalogoVideo.traeListaSeries();
        return listaSeries;
    }

    public List<Coleccion> getListaColecciones() {
        listaColecciones = catalogoVideo.traeListaColecciones();
        return listaColecciones;
    }

    public void getPeliculas() {
        FacesContext context = javax.faces.context.FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
        TipoSeleccionadoBean tsb = (TipoSeleccionadoBean) session.getAttribute("tipoSeleccionadoBean");
        seleccion = tsb.getTipoSeleccionado();
        peliculas = catalogoVideo.traePeliculas(seleccion);
        listaVideos = peliculas.getVideoList();
    }

    public String redirigeListaVideos() {

        FacesContext context = javax.faces.context.FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
        TipoSeleccionadoBean tsb = (TipoSeleccionadoBean) session.getAttribute("tipoSeleccionadoBean");

        seleccion = tsb.getTipoSeleccionado();
        Iterator itr;

        switch (seleccion) {
            case (2):
                itr = listaSeries.iterator();
                while (itr.hasNext()) {
                    serie = (Serie) itr.next();
                    if (serie.getIsanSerie() == idserie) {
                        listaVideos = serie.getVideoList();
                        break;
                    }
                }
                break;
            case (3):
                itr = listaColecciones.iterator();

                while (itr.hasNext()) {
                    coleccion = (Coleccion) itr.next();
                    if (coleccion.getIsanCol() == idColeccion) {
                        listaVideos = coleccion.getVideoList();
                        break;
                    }
                }
                break;
        }
        return "ListaVideos";
    }

    public String redirigeVideo() {
        Iterator itr = listaVideos.iterator();

        while (itr.hasNext()) {
            video = (Video) itr.next();
            if (video.getIsanVideo() == idvideo) {
                break;
            }
        }

        if (seleccion == 1) {
            return "VideoPelicula";
        } else if (seleccion == 2) {
            return "VideoSerie";
        } else {
            return "VideoColeccion";
        }
    }

    public int getIdserie() {
        return idserie;
    }

    public List<Video> getListaVideos() {
        return listaVideos;
    }

    public int getIdvideo() {
        return idvideo;
    }

    public Video getVideo() {
        return video;
    }

    public int getIdColeccion() {
        return idColeccion;
    }

    public void setIdColeccion(int idColeccion) {
        this.idColeccion = idColeccion;
    }

    public void setIdserie(int idserie) {
        this.idserie = idserie;
    }

    public void setIdvideo(int idvideo) {
        this.idvideo = idvideo;
    }
}
